package org.example.operator.transform

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
 * rdd的算子，也就是rdd的方法
 *
 * groupby
 *
 */
object Spark05_RDD_Operator_Filter {
  def main(args: Array[String]): Unit = {

    val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("RDD")
    val context = new SparkContext(conf)

    val rdd: RDD[Int] = context.makeRDD(
      List(1,2,3,6),2)

    // 只过滤基数
    val filterRdd: RDD[Int] = rdd.filter(_ % 2 != 0)

    /**
     * 函数说明，将数据根据指定的规则筛选过滤，符合规则的数据保留，不符合规则的数据
     * 丢弃，当数据进行筛选过滤后，分区不变，但是分区内的数据可能不平衡
     *
     * 生产环境下，可能会出现数据倾斜
     * 两个分区过滤后出现以下情况
     * 1号分区   2号分区
     * 900条     1条
     */
    context.stop();  }
}
